{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Set working directory"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Python 3.8.2\r\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "cwd = os.path.split(os.getcwd())\n",
    "if cwd[-1] == 'tutorials':\n",
    "    os.chdir('..')\n",
    "!python --version"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Import modules"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from utils.bron_network_utils import load_graph_nodes\n",
    "from meta_analysis.make_data_summary import load_graph_network, main_data_summary\n",
    "from meta_analysis.meta_analysis_scripts.vendor_threat_data_types import threat_info_bar_graph\n",
    "from meta_analysis.meta_analysis_scripts.data_types_over_versions import data_types_over_versions\n",
    "from meta_analysis.meta_analysis_scripts.cve_connectivity_by_year import cve_connectivity_by_year\n",
    "from meta_analysis.meta_analysis_scripts.make_edge_distributions import tactic_edge_hist, technique_edge_hist, capec_edge_hist, cwe_edge_hist, cve_cpe_edge_hist\n",
    "from meta_analysis.meta_analysis_scripts.vendor_applications import make_vendor_to_cpes, make_vendor_to_num_cpes, vendor_num_apps_histogram\n",
    "from meta_analysis.meta_analysis_scripts.cve_data_helper import line_plot_cvss_scores_by_year, density_plot_cvss_scores\n",
    "from meta_analysis.meta_analysis_scripts.vendor_tactic_and_cvss import bron_id_to_cpe_id, cve_to_risk, make_heat_map, max_cve_risk_violin, max_cve_risk_violin_tactic\n",
    "from utils.tutorial_util import print_files_in_folder"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Meta-analysis\n",
    "\n",
    "There are several meta-analysis files that can be run on BRON. Make sure to first build BRON before running meta-analyses. A tutorial on how to build BRON is available in the `tutorials` folder."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Make data summary\n",
    "\n",
    "BRON can be used to make CSV files that contain data summaries of the threat data. For each type of threat data, the data summary includes how many and which edges are connected to both the next threat data layer and the previous layer. For CVEs, the vendors of CPEs that the CVE is connected to and the number of unique CPE products that the CVE is connected to are included. The CPE summary includes the vendor, product, and version of each CPE.\n",
    "\n",
    "To make data summaries, run the following command:\n",
    "```\n",
    "python -m meta_analysis.make_data_summary --BRON_path BRON_PATH --save_folder SAVE_FOLDER \n",
    "```\n",
    "Optional arguments:\n",
    "```\n",
    "--tactic --technique --cwe --cve --capec --cpe --not_all_cpe_versions\n",
    "```\n",
    "`BRON_PATH` is the file path of BRON, and `SAVE_FOLDER` is the folder path to save data summaries. To make a data summary for any threat data type, add the data type name as an argument. To make a data summary using only the latest version of CPEs, add the argument `--not_all_cpe_versions`.\n",
    "\n",
    "It is important for the folder to save data summaries to be named as one of the following depending on the type of CVE data and CPE versions that are used:\n",
    "```\n",
    "* all_cves_all_versions (if using all years of CVE data and all versions of CPEs)\n",
    "* recent_cves_all_versions (if using only recent years of CVE data and all versions of CPEs)\n",
    "* all_cves_latest_version (if using all years of CVE data and only latest version of CPEs)\n",
    "* recent_cves_latest_version (if using only recent years of CVE data and only latest version of CPEs)\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "out_path = 'example_data/example_output_data/'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tactic\n",
      "technique\n",
      "capec\n",
      "cwe\n",
      "cve\n",
      "cpe\n"
     ]
    }
   ],
   "source": [
    "BRON_path = os.path.join(out_path, 'BRON.json')\n",
    "save_folder = os.path.join(out_path, 'all_cves_all_versions')\n",
    "datatypes = [\"tactic\", \"technique\", \"capec\", \"cwe\", \"cve\", \"cpe\"]\n",
    "not_all_cpe_versions = False\n",
    "graph = load_graph_network(BRON_path, not_all_cpe_versions)\n",
    "main_data_summary(graph, save_folder, datatypes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "'example_data/example_output_data/BRON 1598530105.965684'\n",
      "'example_data/example_output_data/all_cves_all_versions 1598530105.9690936'\n",
      "'example_data/example_output_data/all_cves_latest_version 1598530105.9699273'\n",
      "('example_data/example_output_data/search_result_ibm_business_process_manager.csv '\n",
      " '1598530105.9832911')\n",
      "'example_data/example_output_data/figures 1601316149.9301994'\n",
      "'example_data/example_output_data/BRON.json 1601396716.0232089'\n",
      "'example_data/example_output_data/search_result_tactic.csv 1601396716.0810413'\n",
      "('example_data/example_output_data/search_result_technique.csv '\n",
      " '1601396716.1440012')\n"
     ]
    }
   ],
   "source": [
    "print_files_in_folder(out_path)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Number of data types for specific vendors\n",
    "\n",
    "For a specific vendor, BRON can be used to find the number of data types (Tactics, Techniques, CAPECs, CWEs, CVEs, and CPEs) associated with that vendor. To plot the number of each data type for specific vendors, run the following command:\n",
    "```\n",
    "python meta_analysis/meta_analysis_scripts/vendor_threat_data_types.py --vendors VENDORS --search_result_folder_path SEARCH_RESULT_FOLDER_PATH --save_path SAVE_PATH\n",
    "```\n",
    "`VENDORS` is a comma-delimited string of vendor names, `SEARCH_RESULT_FOLDER_PATH` is the folder path to path search results for each vendor, and `SAVE_PATH` is the file path to save the figure. The path search results for given vendors (e.g. IBM) should be named as `search_result_ibm.csv`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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LVuWrVu3kpCQQIcOHahXr54/OVn79u0JCwuja9euHD16lKlTp7J9+/Y0GTAff/xxunfvTsWKFVOUx8fH06ZNG9577z0mTpxI165dad++fdb+aXlYZu83X1rqr7/+mrp169KxY0fq1atHjx49mDt3LhEREQwZMoQWLVpk+v/Yv38/N9xwgz97b5cuXfjmm284evQoQ4YM4YUXXuDEiRP06NGDqlWrUq9ePf7zn//QrVs3oqOjuf3229m6dSsvvvgiR44cYerUqSxbtozhw4dTqFAh+vTpw4wZM9i1K2uTvB45csR/fiY6OjrFutdee422bdvSv39/IiMjefzxx5kwYQKVKlWiT58+LFiwgD/84Q+cPXuWxx57jGnTpjF+/HiKFStGnz59PLU0fOm8hw4dSpUqVfzlxYoV8+f6Gjx4MLNnz6Z27dr07t2bWbNmMXDgQIoUKZIiDfjcuXNp3749DRo04Ouvv2bIkCHs3Lkz3e+NS82R5Flgkq/ABWd0maclo31cZN+lcIKbAvEB5X0CytsHlE93y86ms694d10nj8fWwKV58+aano0bN6Z4DGiNbTWCtjj/Cm/mzp2rgMbExGhycrIOGDBAAb377rv929x1110K6JNPPpnmdQC6bds2f1lycrIuXLhQx48fr6NHj9a4uDgF9J577lFV1S5duiigI0eO9D8nMTFRVVWXLl2qgJYuXVpjYmK0ePHi+umnn160/qn/B75l+PDhqqr622+/6ezZszU+Pl5Hjx6tderUUUCffvppVVWdOnWqAtq2bdsU+23btq0COnXqVH/ZAw88oIBee+21OmrUKB01apSGh4croJs2bdJt27b5j79kyRL/8wLLv/nmG1VVbdOmjQI6YcKEi76+7AJoo9mLgrZ4fc95eb89+eSTCuhdd93lL/O9N2JjY/1lmf0/JkyYoIA2bdpUk5OT/c9LSkpSVdXY2FgFdOnSpf51nTt3VkA7dOigo0aN0vvvv18BFRE9deqUDh06VAEdMmSIqqoePnxYixYtqoDOnz8/3dfse4+lXooVK6bLly9X1QufsTZt2vifd/78eS1ZsqQCumzZMlVV/eCDDxTQSpUqqapq+/btFdCnnnpKVVV/+OEH//7Xr1+fbn2KFCmigL788svprt+/f79/H9u3b1dV1YkTJyqg1113XYr/Uf369fX8+fP666+/+p9z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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "vendors_str = 'ibm,mozilla'\n",
    "search_result_folder_path = 'example_data/example_input_data'\n",
    "save_path = os.path.join(out_path, 'figures/ibm_mozilla_data_types.png')\n",
    "vendors = [_.strip() for _ in vendors_str.split(',')]\n",
    "threat_info_bar_graph(vendors, search_result_folder_path, save_path=save_path)\n",
    "# TODO check why it changes with only one vendor"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "# Number of data types for specific vendor products\n",
    "\n",
    "Similar to finding the number of data types for specific vendors, BRON can also find the number of data types for specific vendor products. To plot the number of data types for specific vendor products over all product versions, run the following command:\n",
    "```\n",
    "python meta_analysis/meta_analysis_scripts/data_types_over_versions.py --BRON_folder_path BRON_FOLDER_PATH --vendor VENDOR --product PRODUCT --starting_point_file STARTING_POINT_FILE --search_result_file SEARCH_RESULT_FILE --save_path SAVE_PATH\n",
    "```\n",
    "`BRON_FOLDER_PATH` is the folder path to BRON, `VENDOR` is the selected vendor, `PRODUCT` is the selected product of the given vendor, `STARTING_POINT_FILE` is the file path to an empty CSV file to save path search starting points, `SEARCH_RESULT_FILE` is the path to an empty CSV file to save path search results, and `SAVE_PATH` is the file path to save the new figure."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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wrYl8K92cPJAxvUAeeKJJxg3bhzjxo3zTqnwwAMPMG7cOAYMGMCIESOoXLkyNWrU4K677srw3+mGDRvo168fNWrUoFy5clx55ZXs2LEjw/G//PJLEhISqFSpEoMHDybZvdPylClTEBE6duzI73//e6Kjo4mPj+e9997z1s18aSIpKYlbbrmFSpUq0axZM15++WVExHtn4e3bt3t7bh7ZXSJ5++23ad68ORUrVqRhw4Y8++yzNgmea/emY8x/7QdOHj3L/Nd+YPemwM5Oe8stt1CmTBk2b97MmjVrAOfN/sMPPwRgyJAhiIh3CgTI+xKVp8cwYMAAhg4dSsWKFWnQoAFffvmld58jR44watQo6tatS6VKlejQoQNLl6bf5dtzjj/96U9cddVVREREsHPnTv7+97/TsGFDKlSoQJkyZWjevDkzZ87MEsORI0e48cYbKV++PK1bt+b777/3PpbX5Wjf5zd27FieeuopAN555x1EhC5dunjnMHr22We99e69994sZSadJaALtW0JvH8rHNoCs0akr3/9QtBPndc0xPmdTvvRRx/lqquuIjU1lffee88714vHsmXLWLZsGW3btmXv3r2MGjWKEyeyny129OjRzJw5k+joaFq3bs3TTz/t9/N64403GD58OMeOHePWW2+lXLlyPP744zzzzDN+H6u48SSf88nOf//nk9MCnoQqV65Mr169AGcaA4BFixaxb98+oqKiqFSpUoGPPWvWLPbu3UvTpk355ZdfuOuuuwAnwd10001MnDiR2rVrc+utt7Ju3Tp69OjBpk2bMhzjpZdeIjY2lttvv50yZcqwbds2rrjiCu68805uuukmfv75ZwYPHpwlmfzrX/8iIiKCK6+8ktWrV9OnTx/Onj3r93No166dd96thIQExowZw4ABAxg+fDiA9x80VWXevHkA3H777X6fpySwS3C5mdw7+/Jhznw6fPZnWPMOpLgT0u34BtSd3G39xxDfCr5/P2v9KwdCi0EXHF5e0xD/5z//ydd02v/617+8SWvq1KneaY49LrnkEpYsWUJYWBjlypXj9OnTbN68mdatM94QNzU11ftf8vvvv0+nTp1o0aIFo0eP9ut5TZgwAYC2bdsSGRlJs2bNWLduHa+//jpPPvmkX8cqSub8Y02OjzW+ujqVqpRl7ri1zkQGPs4npzF33Fqq1KhAmfLh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739asWJFLVeunH7xxRfZxu4599q1a1VVddWqVd6y77//XqdNm6YJCQlasWJFDQ8P14YNG+prr72mqqqTJ0/O8hzq1KmjiYmJWcqffPJJVVVdunSpJiYmanR0tFavXl2HDRumhw8fVlXVbdu2efd//fXXtXr16tqlS5cM5W+99ZbWqlVLo6Oj9aGHHgrky2hMBgV97wkVYJUGKBcUiRFkqro50/Z/ReQIUAWonc3+OU5a07p164D2go6cPeJXeUGdO3fOO8/9P/7xD/r378+OHTtYsmQJiYmJ9OjRg++++44NGzZw1VVX0a5dO9q2bUt0dLR3gq9hw4YRGRlJzZo1+eabb4iJiaFt27akpKTw8ccf8/TTT5OQkMBtt93GggULvDNFXn/99cTGxrJy5coscf3www9cf/31pKamMnfuXLp3757nczl//jxLlizxbsfExLBjxw7q169PYmIip06dYtasWTzwwAO0aNGCJk2a0L17dxYsWEB8fDwDBgzgkksu4ZJLLmHr1q3s2bOH7t2706RJE+/kZNdeey0RERH06dOHY8eOMXnyZLZv387ChQszxPL444/Tt29fqlWrlqF87NixdO7cmenTpzNu3Dj69OnDtdde69+LZozJXaAymT8LufSAgIXARuA5n7I/AbV9trv71J/oz7n96QHd+dmdOmfLnFzXs+v9eJa86vpj1qxZCmhsbKympqbqkCFDFNARI0Z49/H0eDy9AA/P72rbtm3estTUVJ0/f77+7W9/04ceekjdxKwjR45UVdXevXsroKNHj/bWSU5OVtX0HlBUVJTGxsbm2vPJHEPm5f7771dV1XPnzumMGTN07Nix+tBDD2mjRo0U0GeeeUZV03tBiYmJGY7r6QVNnjzZW3bfffcpoFdddZWOGTNGx4wZo2XKlFFAN2zYkKGns3DhQm893/LvvvtOVVU7d+6sgL700ku5Pj9jCsp6QIVERG4GXgR8eyijRWQw8K2qDgIuBeoAvpPY3ws8JyK7gNNAY7f8NDAu2HFfDN59910AbrjhBkqVKkW/fv2YNm0aM2bM4NVXX80wS2R+3HvvvUycODFLuWcaY8903r5zsYSHh2fY1zNTZZs2bejcuXO+zjtw4EDi4uKIjY2lY8eOdOzY0fu8vvjiixzj8UdeU5U3bdrUu+07vbOvvKYpN8ZcuMIehBCJk2Dq+5RV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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "vendor = 'ibm'\n",
    "product = 'business_process_manager'\n",
    "starting_point_file = f'example_data/example_input_data/starting_point_{vendor}_{product}.csv'\n",
    "search_result_file = os.path.join(out_path, f'search_result_{vendor}_{product}.csv')\n",
    "save_path = os.path.join(out_path, f'figures/{vendor}_{product}.png')\n",
    "data_types_over_versions(out_path, vendor, product, starting_point_file, search_result_file, save_path=save_path)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Paths to Vulnerabilities\n",
    "\n",
    "Because the different data types are linked together in the BRON graph, Vulnerabilities can be reached by paths from other data types. The number and percentage of Vulnerabilities connected to a Tactic, Attack Pattern, or Weakness can be drawn over specific years.\n",
    "\n",
    "To plot the number or percentage of different Vulnerability paths over years, run the following command:\n",
    "```\n",
    "python meta_analysis/meta_analysis_scripts/cve_connectivity_by_year.py --years YEARS --search_result_folder_path SEARCH_RESULT_FOLDER_PATH --number_or_percent NUMBER_OR_PERCENT --BRON_folder_path BRON_FOLDER_PATH --save_path SAVE_PATH\n",
    "```\n",
    "`YEARS` is a comma-delimited string of years, `SEARCH_RESULT_FOLDER_PATH` is the folder path to path search results for each year, `NUMBER_OR_PERCENT` is either \"number\" or \"percent\" to determine plot type, `BRON_FOLDER_PATH` is the folder path to BRON, and `SAVE_PATH` is the file path to save the figure. The path search results for given years (e.g. 2018) should be named as `search_result_cve_2018.csv`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ8AAAEQCAYAAABvBHmZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAABWEUlEQVR4nO3dd3xUZfb48c8zybRMCAkJoYXeMUgXRTQgWNe1IrYFZdf92v2p6NpWwNWVRcWGil0QFVjEjhUEBVlUQHrvhB5ISJvJtPP7YyZDAgESSCM579drXplb5t6TG7hn7nOf+xwjIiillFKVyVLVASillKp9NPkopZSqdJp8lFJKVTpNPkoppSqdJh+llFKVTpOPUkqpSqfJRymlVKWr1ORjjDnXGPOVMWaPMUbCr1GHrTOnyLKir3mVGatSSqmKE13J++sOXASsB5KPs+4mYF+R6ZUVFZRSSqnKVdnJZxLwJqErrpzjrPukiEyo8IiUUkpVukptdhOR/SKSX8rVXzDGFBhjNhlj3jTGNKjQ4JRSSlWa6trhwA3sINTs1hL4O/A/Y4zr8BWPcn9IjDE6aJ1SSlVTld3sVhr3AatEpMAYY4B/A48QSkJXAh+UdkNJSUnSokWLCglSKaXUkRYtWpQhIvWPt161Sz4i8keR92KM+YhQ8gFoVsL65mjb6tmzpyxcuLD8g1RKKVUiY8zW0qxXrZrdjDHJxpj7jTF1isy+tsj7LZUcklJKqQpQ2c/5XGWM2QAsLTL7HmPMBmPMh0AMMBY4YIxZbYzZBvwzvN5q4JPKjFcppVTFqOxmtzig9WHzEsKvdEIdDP4NXBBezwmsAT4DnhERT6VFqpRSqsKYmlzJ9Gj3fHw+H+np6Xg8msuUqu0cDgcpKSlYrdaqDqVGMMYsEpGex1uv2nU4qAzp6enUqVOHFi1aEOpQp5SqjUSE/fv3k56eTsuWLas6nFqlWnU4qCwej4fExERNPErVcsYYEhMTtRWkCtTK5ANo4lFKAXouqCq1NvkopZSqOpp8qljhfaeSXqNGjTqhbU6YMIFRo0aRlZUVmdevXz+MMWzZsqVM25ozZw6jRo1iyZIlJxTLzTffjDGG559/vtj8q666CmMMb7/99jE/v2XLFowx9OvX74T2f7ImTJhwzL/FqFGjMMYwYcIEgGL3EefMmYMxhptvvhmAJUuWMGrUKObMmXNCsRRur/Dlcrno1asX3377bak+/+KLLx7xe+h9T1VVamWHgxPx2R87ePa7tezMctM43smDF7bnim5NTnq748aNIy8vj3379nHPPfeQlJTEuHHjAEhNTT2hbU6YMIGffvqJm2++mfj4eABGjBjB3r17qV//uKNeFDNnzhyeeOIJWrRoQdeuXcscy0033cTEiRP54IMPuP/++wHIysri66+/xul0Mnjw4DJvszz5/X6io0/8v8GgQYPo0KEDvXv3PmJZp06dmDx5cuRG9pIlS3jiiScATiqZduzYkREjRrB+/XpGjRrFlVdeydq1a2nW7IgBQIp58cUX2bp16wl/qVGqXIlIjX316NFDSrJq1aoS5x/Np4vTpcM/v5HmD30VeXX45zfy6eL0Mm3nWDZv3iyANG/ePDLv0UcflUaNGonVapX69evLNddcI3v37hURkWAwKGPHjpX27duLw+GQRo0aySeffCJpaWkCFHtt3rw5Mn/z5s0iIjJ//nw577zzJD4+XlwulwwZMuSImEaOHHnEtt577z3x+/3y5JNPSuvWrcXpdEqHDh3ktddeK/H3CgaD0rx5cwEix/3NN98UQK6//noRkcjywtiKxlp4XNLS0orF9H//93/Ss2dPcblccsEFF0hmZqaIiOTm5sp9990nzZo1k5iYGOnVq5fMnDmz2DHu0aOHXHvttVK3bl359NNPZdy4cdK0aVOx2WySkJAgF110kWzYsEFERN577z0BZMiQIdK3b19xOp3Sr1+/SKyF8bz33nvFfhcRkdmzZwsgN910U2Q7RV+PP/64tGnTRpxOp+zfv19ERD766CMBZPjw4Uccy8LtFR4LEZGePXsKINOnT5d58+ZJhw4dJCYmRmJiYqR79+7y3XffFYur6Kvo/GeeeUaaNWsm9erVk2eeeabEv2VNVtZzgjo6YKGU4vxc6698nvhyJat2Zh9znT+2ZeENBIvNc/sC/OPjZUz+bdtRP9epcRwj/3zaCcfWqlUrHn/8cYwxLF26lNdff53ExETGjx/P888/zwMPPEDHjh156aWXyMzMBEJXOHfddRerV6/m5Zdfpn79+kdc7WzZsoULLrgAr9fLww8/TEpKCps3bz5i/4MGDWLFihVMnz6d2267jbS0NHr37s0zzzzD448/Tt++fXn44Yd58cUXueOOO0hISOC6664rtg1jDEOG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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "years = '2018,2019'\n",
    "search_result_folder_path = 'example_data/example_input_data'\n",
    "number_or_percent = 'number'\n",
    "save_path = os.path.join(out_path, 'figures/2018_2019_cve_paths.png')\n",
    "years_split = years.split(',')\n",
    "cve_connectivity_by_year(years_split, search_result_folder_path, number_or_percent, out_path, save_path=save_path)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Number of edges for data types\n",
    "\n",
    "The data type nodes in BRON are linked to other data types by edges. The number of edges for Tactics, Techniques, Attack Patterns, Weaknesses, Vulnerabilities, and Affected Platform Configurations can be found. To plot the number of edges for a specific data type, run the following command:\n",
    "```\n",
    "python meta_analysis/meta_analysis_scripts/make_edge_distributions.py --data_summary_folder_path DATA_SUMMARY_FOLDER_PATH --data_type DATA_TYPE --save_path SAVE_PATH\n",
    "```\n",
    "`DATA_SUMMARY_FOLDER_PATH` is the folder path to subfolders of the data summaries, `DATA_TYPE` is the selected data type (either Tactic, Technique, CAPEC, CWE, CVE, or CPE), and `SAVE_PATH` is the file path to save the figure."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbIAAAFYCAYAAAA2rHn4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAABLmUlEQVR4nO3deXxU5fX48c8BEpYECItACBAWRUFWRbQiAi6tLVpBUFuECoriVkD99WutFXCtrXWBWi2KBUXRKqitYq0bCCKyWBAtuyyyCAiCIDvJ+f1x7wyTySSZZO7M3Jmc9+s1r8w8986dMxfCw/Pcc88jqooxxhiTqqokOwBjjDEmFtaRGWOMSWnWkRljjElp1pEZY4xJadaRGWOMSWnWkRljjElp1ZIdgN80bNhQW7ZsmewwjDHGhPjss892quoJkbZZRxamZcuWLF68ONlhGGOMCSEiG0vaZlOLxhhjUpp1ZMYYY1KadWTGGGNSmnVkxhhjUlpCkz1E5HagL3Ay0BD4FpgP3KuqX7j7ZAC/A64GmgE7gOnA3aq6L+RYJwIPAecBtYDlwMOq+lLCvpAxCVJYWMjOnTvZs2cPBQUFyQ7HmLioUaMGzZo1IyMjo1zvk0RWvxeRDUA+sAZQoK27aT/QQVU3iMhUYDBQ6O7XGsgAPgLOU9VCEckFlgKNgL3ALqCVe6xrVfXvFY2xW7dualmLxm++/vprRITGjRuTkZGBiCQ7JGM8pars2rWLffv20apVq2LbReQzVe0W6b2JnlqcBLRS1baqejJwu9ueBfQXkdNwOjGAUap6CjDAfd0L6Oc+vxOnE9sHtFPV1sAMd9sfRSQzvl/DmMTav38/eXl5ZGZmWidm0pKI0KBBAw4dOlTu9ya0I1PV+1V1Q0jTeyHPDwM/DXkd6JhmAoFvdpH7M7DffFXd6j5/zf3ZEIjYaxuTyqpUsUvaJr1V9D9pyf7NuM39uQt4FWgesm0HgKoWAjvdthbuz+ah+7i2hzxvQRgRGSciWtZj69at4W81xhjjY0npyEQkU0SeB4biXOPqp6rflvaWaA7rRWzGGH8QEUSEDRs2VPgYvXv3RkSYMmWKZ3EZ/0l4RyYiDYEPgCHAN0BvVf3Y3bwpZNdG7v5VgAZu29dh+zUK3z9sP2NMnLVs2TLY6UR6zJ49O2mxDRw4kFGjRtG+ffukxWDiL9Hp9+2At3AyEZcCl6jq5pBd3gHud58PAJ7ASdevEbI98PMW4Eci0tS9TnaZu20nUCztUFXHAePKirFbt26JS+M0Jg1cc801fPfddwA89dRTHDlyhAEDBtCsWTOA4M9kuOWWW5L22SaBVDVhD2AlTtq9Al8An4Y8hrv7THO3FwArgCPu6zlAFXefPJx70BT4HlgXctzrYonx9NNP11i1aNpIQ+LxxSM/r0nM38skz/Lly5MdQlTq1q2rgM6aNUtVVefOnau9evXSnJwczc3N1WHDhunOnTuD+y9fvlz79eunubm5WqNGDe3cubNu2LBBVTX4d/eZZ57RU045RbOzs/Wqq67Sw4cPq6rq5MmTFdAePXro6NGjtW7dutq0aVN94YUXgsfv1auXAjp58mRVVd29e7cOHDhQs7OztWPHjvrII48ooHXr1lVV1fXr1wc/N+Dqq69WQMeOHRtse/bZZ7VTp06alZWlJ554oj7wwAN69OjROJzRyqekv+vAYi3h3+1ETy3WCHneATgz5BH4b9vVwL0404NtcEZYfwEuVifxA1XdAvTAyVRUoCnOCG+wqj4T929Rhq+37mDpiCwWDs8qti1Z7Ru3bIs2fGM88eWXX3L++efz2WefcdFFF9GpUycmT57M5Zdfjqqybds2evbsyRtvvEGTJk0YPHgwqsru3buLHOfOO+/kzDPPpKCggBdffJGpU6cW2T5v3jzmzZtH9+7d2bp1KyNGjGDv3r0RYxo5ciTTp08nJyeHbt26ce+995b7e02cOJFrr72W3bt3c8UVV1CzZk3uuusuHnjggXIfy3gjoVOLqtoyin2OAmPdR2n7reb4PWa+03faATKqOs8Lx9QGoMq9+5LWbkyiBaYZu3btSuPGjWncuDGzZ89m1qxZrFq1irfeeotdu3bRtWtXFi9eHLy94NixY0WO8+STTwY7v+eff54lS5YU2V6/fn3mzJlD1apVqVmzJvv372f16tV061b0LpyCggL+8Y9/ADBt2jR69uxJ165dGTlyZLm+14QJEwDo3r07derUoVOnTnzxxRc89dRTjB07lieeeIK1a9cGYxszZky5jm/Kz9Yji5OMqnAkQiWhZLUbk2iBbMMFCxawYMGCItvWrl3L+vXrATjjjDOK3CNXrVrRf5a6du0KQE5ODgA//PBDke3t2rWjRg1nsicrK4u9e/cW2wdg586d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Q4cORUQYN25ckXYv1h2LVSCGwKNJkyYMGDCANWvWRPX+KVOmICLFlqtJ9npos2fPLvbdRIQuXbokJZ54ieoamaq+ICKf44zG5qnqdhGpAlwIrItngKnKD5mKVmvRJNLcuXOLrEs2depUHnzwwSRGVH6DBg2iXr16/Pvf/+a1115jyZIlrFy5kszMzKTGdfToUTIyMir8/szMTG688XhVv7y8PC/C8o+SyuJHegCZQFegc3nel0oPr5ZxWToiSxcOL760SrLasWVcUlqkpS0APbB8muq6GUUeB5ZP86S9vH9nrrvuOgW0a9euCmh+fr4WFhaq6vGlUEIfkdpwl4B59913tUuXLlqnTh2tVq2atmjRQseMGVPk82bOnKk9evTQnJwcrV27tv7sZz9TVdVZs2YFP19Vdf78+Zqdna01a9bUd999N2Lsgc9esmSJqqouXrz4+O/U0qU6depUbdeunWZnZ2tGRoaedNJJ+te//lVVjy8nE/rIz88PLiET+ggsBVPa8jahS8k89dRTmpubq7179y7S/uyzz2rz5s01JydHR48eXeKfSeBcBJapiWTGjBnapk0brVOnjt52223as2dPBfSxxx5TVdXDhw/rDTfcoDk5Odq6dWudOHFiMI7du3erqurOnTv1+uuv1/z8fM3Oztazzz5b58yZE/yMF198Udu1a6c1atTQevXq6VlnnaVz586NGE9FlnEpTyd2K860YgHwCXAlzmjsl9EeIxUeXnVkebVFW+aIAlo4prYWjqmd1HbryFJbpF/uJo0bRewIvHo0adwo6vgOHTqk9erVU0A//PDD4PPZs2er6vF/yAA988wzddSoUfriiy/qqFGjgp83bNgwHTVqlK5Zs0YnT56sF1xwgV5//fU6bNiw4PFeeuklVVV99913g+/76U9/qldffbW2b99eVYt2ZEuXLtWcnJxSOzHVoh3Z0aNH9dFHHw22bd68We+//37t27ev3nDDDTp48GCtWbOmioh+8sknumDBAr3wwgud37+8PB01apTec889+pe//EXz8vIU0AsvvFBHjRql//73v/WLL77QzMxMzc7O1l/84hf6k5/8RAHt06ePFhYWFumw6tevr9dcc43+7ne/K9LevHlzveqqq7RKlSoK6Pvvvx/xewXORWZmpo4aNSr4ePHFF1VVdfXq1VqtWjUF9NJLL9UePXoE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\n",
      "text/plain": [
       "<Figure size 450x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "save_path = os.path.join(out_path, 'figures/technique_edges.png')\n",
    "technique_edge_hist(out_path, save_path=save_path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 450x360 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "save_path = os.path.join(out_path, 'figures/tactic_edges.png')\n",
    "tactic_edge_hist(out_path, save_path=save_path)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "# Number of Affected Product Configurations across vendors\n",
    "\n",
    "To plot the number of Affected Platform Configurations for different vendors, run the following command:\n",
    "```\n",
    "python meta_analysis/meta_analysis_scripts/vendor_applications.py --cpe_summary_all_versions_path CPE_SUMMARY_ALL_VERSIONS_PATH --cpe_summary_latest_version_path CPE_SUMMARY_LATEST_VERSION_PATH --save_path SAVE_PATH\n",
    "```\n",
    "`CPE_SUMMARY_ALL_VERSIONS_PATH` is the file path to `cpe_summary.csv` when all versions of Affected Platform Configurations are used, `CPE_SUMMARY_LATEST_VERSION_PATH` is the file path to `cpe_summary.csv` when only the latest version of Affected Platform Configurations are used, and `SAVE_PATH` is the file path to save the figure."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAEQCAYAAAD2/KAsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAA4UklEQVR4nO3deZwU1bn/8c8DDKsgCg6IsgkaNmUXY0yESKKJmBu3xIgGMGo24y8xmsVEw831JiqaxetyTaKgQPRGjYn71aui0QRQRIIsARUERQcRFdm35/dHVffUND091fv0zPf9etWrq09XVZ8+XV2n69Sp55i7IyIiUmotyp0BERFpnlQBiYhIWagCEhGRslAFJCIiZaEKSEREykIVkIiIlEWrcmeg3Lp27ep9+vQpdzZERBqtBQsWbHD3gwq93WZfAfXp04cXX3yx3NkQEWm0zOyNYmxXTXAiIlIWqoBERKQsVAGJiEhZNLsKyMw8OpU7PyIizVWzq4BERKRxaHa94Nzdos9HjRqlsyApm02bNrF+/Xp27dpV7qxIM9ahQwcOPfRQWrQo7TlJs6uARBqLTZs2UVNTwyGHHEK7du0ws4ZXEimwvXv38tZbb7Fhwwaqq6tL+t5qghMpk/Xr13PIIYfQvn17VT5SNi1atKBbt258+OGHpX/vkr+jANC9Tx/MLOepy8EHl/sjSJ527dpFu3btyp0NEaqqqti9e3fJ31dNcDnq0r07G2tq8ttIYjTabdugZ08wgzVrIHFQypC+sX37/N5bGgWd+UhjUK79UBVQjtJWPjNnQ1UVnPWleOkJ7drB2rW183HSRUQqnJrg8jFzNvToAdXVcPefYPAQOOJj8dJTtWuXvmKpL12kAiSajKdOnQrAnDlzkmlz5swpa97iGjt2LGbG2LFjy52VJqfZVUAFvxH1oUfhsSeC+RPHw4TPxU8XSaNbz555XR/M+npi9+455fPuu++us51XXnmlIJ9/6tSpyW2uWLFin9eHDx+OmXHkkUcW5P0aMmjQIMaMGcOgQYNK8n7NSbOrgArq3Imw4l+w5JWgee3dd2HdunjpEFzj2bZt3+1mmy5Nyvo33wzOnGfO3vfFIqTnei1z+vTpdZ7PmDEjp+2kmjRpUvKaxJ133lnntVdeeYWXX34ZgClTpuT1Pjt37oy13M0338zcuXO5+eab83o/ScPdm/U0cuRIzwUQTNXVTo8ewfyCl4MpbnqXLsG0dWtthrZujZcOOeVbGo+lS5emTc97v8o2PYd9ae3atd6iRQsHPLyZ27t16+a7du3a97OA/+xnP3N396effjqZ9vTTT9e7/XHjxjngvXv39r179ybTL730Uge8VatWXlNT4+7u8+fP95NPPtkPOOAAb926tQ8ZMsRvv/32tPm49NJLfdKkSd6pUyf/4he/6O7uv/rVr3zgwIHevn1779ixow8aNMgnT56cXPf44493wI8//vhk2tatW/3yyy/3fv36eVVVlR9wwAE+YcIEX7BgQXKZ6dOnJ9/3L3/5i3/yk5/0tm3b+sc+9jF/8MEHk8tt3rzZv/Wtb3nPnj29TZs2fuCBB/rRRx/t119/fbwvo0Dq2x/d3YEXvQjHX50B5atVK0h3F3vc9Pp6n2SbLk1LvvtVrukx3XHHHezdu5cDDjiAWbNmYWbU1NTwyCOP5LzNqMTZzRtvvMEzzzwDwJ49e/jjH/8IwMknn0x1dTV///vfOe6443j44Yepqqqif//+vPLKK5x33nlcf/31+2z3hhtu4J577qFXr160adOGBx98kEsuuYRly5bRu3dvevbsyerVq5k5c2bG/H3hC1/gF7/4Ba+99hr9+vVj9+7dPPTQQxx33HHJM7SoM888k3feeQcz41//+hdnn302GzduBODKK6/k5ptvpqamhkGDBtG5c2deeumlgpVlo1aMWq2SprzPgGbOdu7+U+3zbNK3bq17lpOY4qTrDKjiZTwDyme/yiE9W/3793fAv/GNb7i7+yc/+UkHkmcVdT5LDmdAW7Zs8Y4dOzrgU6ZMcXf3xx57LLnu/fff7+61Z0qf+tSnfOfOne7uftVVVzngHTt29G3bttXJR9euXX3t2rXu7r57926/7rrrHPATTjgh+d67du3yZ555Jvk89QzoqaeeSm5v2rRp7u7+9ttve+fOnR3w0047zd3rngFdcskl7u7+17/+NZn26KOPurv7hAkTHPCf//znyff88MMPff78+TG+icLRGVClybbnWzQdsu/5ph5xzUeu+1Uu6Vl67rnnePXVV4Hgeg3AueeeC8DDDz/Mu+++m/fHb9++PV/6UnDbwn333ce2bduSZyUHHXQQJ598MgDz5s0D4Nlnn6V169aYGT/96U8B+Oijj1iyZEmd7Z5++ukceuihALRs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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "cpe_summary_all_versions = os.path.join(out_path, 'all_cves_all_versions/cpe_summary.csv')\n",
    "cpe_summary_latest_version = os.path.join(out_path, 'all_cves_latest_version/cpe_summary.csv')\n",
    "save_path = os.path.join(out_path, 'figures/vendor_applications.png')\n",
    "vendor_to_cpes = make_vendor_to_cpes(cpe_summary_all_versions)\n",
    "vendor_to_num_cpes = make_vendor_to_num_cpes(vendor_to_cpes)\n",
    "num_cpes = list(vendor_to_num_cpes.values())\n",
    "vendor_to_cpes_versioning = make_vendor_to_cpes(cpe_summary_latest_version)\n",
    "vendor_to_num_cpes_versioning = make_vendor_to_num_cpes(vendor_to_cpes_versioning)\n",
    "num_cpes_versioning = list(vendor_to_num_cpes_versioning.values())\n",
    "vendor_num_apps_histogram(num_cpes, num_cpes_versioning, save_path=save_path)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# CVSS scores by year\n",
    "\n",
    "To plot a line plot of CVSS scores by year or a density plot of CVSS scores, run the following command:\n",
    "```\n",
    "python meta_analysis/meta_analysis_scripts/cve_data_helper.py --years YEARS --data_summary_folder_path DATA_SUMMARY_FOLDER_PATH --plot_type PLOT_TYPE --save_path SAVE_PATH\n",
    "```\n",
    "`YEARS` is a comma-delimited string of years, `DATA_SUMMARY_FOLDER_PATH` is the folder path to subfolders of data summaries, `PLOT_TYPE` is either a 'line-plot' of CVSS scores by year or a 'density-plot' of CVSS scores, and `SAVE_PATH` is the file path to save the figure.\n",
    "\n",
    "It is important for the data summary folder containing subfolders to have the following subfolder names:\n",
    "```\n",
    "* all_cves_all_versions\n",
    "* recent_cves_all_versions\n",
    "* all_cves_latest_version\n",
    "* recent_cves_latest_version\n",
    "```\n",
    "\n",
    "Each of the subfolders should contain data summaries for all threat data types:\n",
    "```\n",
    "* tactic_summary.csv\n",
    "* technique_summary.csv\n",
    "* capec_summary.csv\n",
    "* cwe_summary.csv\n",
    "* cve_summary.csv\n",
    "* cpe_summary.csv\n",
    "```\n",
    "Refer to `meta_analysis/make_data_summary.py` to create data summaries for all threat data types."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAEQCAYAAAD2/KAsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAABK20lEQVR4nO3deXgUVfbw8e/JvkKAsENIABUYUUFQkFVBXEAW11FQwN1RX5jN+Tnq4Dij4zg6g4ozjuMObigi4K6IgAsqCArKphB2EvaQfenz/lHVnc5GOpBOJ+R8nqefrq66VX26U6nTt+rWvaKqGGOMMXUtLNQBGGOMaZwsARljjAkJS0DGGGNCwhKQMcaYkLAEZIwxJiQsARljjAkJS0DGGGNCok4TkIgMFpG3RSRDRNR93Bvgur8UkW9FJE9E9ovIGyLStVyZRBH5l4hsF5FCEdkkIveKSGS5cqeLyPsikiUiuSLyuYicW4sf1RhjTDXqugbUGzgf2F+TlUTkOuAVoBewCwgHLgE+F5E2bpkwYAEwFWgFbAI6AdOAZ/y2dQqwBDgPKHBjOQt4T0RGHP1HM8YYUxN1nYBmAk2AvoGuICJRwIPuyzmq2hnoDhzGSTR/dJeNBYa40xerajecZARwtYj0dqf/CsQB6UBnIBX4CiepPVzDz2OMMeYo1WkCUtV9qppbw9X6Asnu9Bx3OzuBZe68893nC9znPOBd//LeciISAQx3X3+oqodVtRiY787rKSLtahifMcaYo9AQGiF09JvO9JvOcJ9TypXbp6qecmW85ZKB2CNsy397Pn7Xqyo8avJBjDHGlIoIdQDHQGqpTE3KVZCcnKypqalHu7oxxhx3VqxYsVdVW1ZXriEkoG1+060qmd5arlyyiIS5tSD/8luBvTin6GKr2Jb/9nxUtcoE1adPH12+fPkRP4AxxjQmIrIlkHL17hSciKS7p7eed2d9A+xzpy9xy7QD+rnz3i/3HANc6F/eu9y93rPQfT3CbbYdAYx25612ry8ZY4wJsrq+D+hiEfkJ+M5v9v8TkZ9E5KXK1lHVQkpbul0iIpuAtUAiTo3G20LuLeAzd/pNEVkLTHdfv6yq37rTd+PUglJxmmqnA2cCHuCOY/h4xhhjaqCua0BNgC44zZ+9mrnz2rv38iS581d7C6jqU8AEYBXQDlBgLjDAW2NR1RJgJPAYsMfd5lbgL8Akv219h9Nc+yOc2lIL4EvgQlX11qKMMcYEmdSnEVFF5DRgJbAG6K2qRaGNqHp2DcgYY8oSkRWq2qe6cvWtEcJQnNrNjQ0h+RxJUVER27dvJz8/P9ShGGOA8PBwkpKSSE5OJiys3l3+bpTqVQJS1emUXrdp0LZv305iYiKpqamIHHUrb2NMLVBVioqKyMjIYPv27aSkVLjdz4SA/QwIkvz8fFq0aGHJx5h6QESIioqiffv25OTkhDoc47IEFESWfIypX+zUW/1ifw1Tr3lPYX766aehDsWnPsYUqKFDhyIiPP/886EOxRhLQI2VqvoOpCLC2rVrQx1Sjd17772++Ct7TJo0KaD1qytXUx6Phz//+c906dKF6OhoWrRoQd++fXnmmWeqXznILr30UqZMmUKPHj2A4H0HxgSiXjVCMHVn6dKlbNlS2lvGzJkzeeCBB0IYUc3169ePKVOmALB48WJWrVpF9+7dGTHCGdbpjDPOCElcjz76KPfeey8pKSlMnjyZrKwsVqxYwZdffsl1110Xkpg8Hqd/3ttuuy0k729MpVTVHsfwOP3007UyP/74Y6Xzq7N+1gF9vtM6nSGr9flO63T9rANHtZ3q3HDDDQpor169FNBOnTqpx+PxLR8yZIgC+n//9386aNAgjY2N1bPOOkvT09NVVXXz5s2K02Ren3nmGe3YsaMmJSXp1KlTfduYOHGiAjpt2rQK63hdeeWV2q5dO42KitKEhAQ9++yz9fvvv/ct79SpkwK6aNGiI36eKVOmKKATJ070zcvMzNTrrrtOO3bsqImJiXrmmWfqe++9p6qq06ZN88XifQwZMqRWYrrooosU0DfffLPM/H379vmm9+7dqzfeeKN26tRJExIS9KyzztIlS5aoquqzzz6rgI4aNcpX/vnnn1dAR44cWe36qqV/vzvuuEPPOOMMDQ8P182bN/vmP/fcc1V+B9594/777/dt7+abb64wr6E62v9NEzhguQZw/LRTcPXIhpcOsujGHWRvKQKF7C1FLLpxBxteOlir71NQUMAbb7wBwCOPPEKzZs3YsmULS5YsqVD2H//4Bx07dqRly5Z88cUX3H333RXK3HvvvQwePJisrCymT5/OwoULK5SpypYtWxg6dCjXX389vXv3ZtGiRVx++eVH/+FcHo+H0aNH88wzz5CcnMyYMWNYsWIFI0eO5IsvvqBfv36ceeaZAHTv3p0pU6Zw6aWX1kpMbdu2BeCGG27g6quv5t///jfp6ek0b97cF9uYMWN46qmnSElJ4fLLL2f16tWMGDGC9evXc+mllxIXF8eHH37IwYMHAZg9ezYA11xzTbXr+/vHP/5Bq1atuPLKK4mOji6zrKrvwFtLe+klp3csVWXBggUAXHnllQF/D8ZUJ6BTcCJyLs7AcK8DO4FZwDk4fbpdqao7ghbhcWDp1F3sXZVXbbmMZXmUFJTtmaI4V/nkuh388L8jj2KefFosg6a3DSied955hwMHDtCqVSuGDBnCqFGjmDlzJrNmzWLIkCFlyt5000088cQTPPfcc1x77bWsXLmywvbmzJlD37592bZtG0uWLGHlypUMGzYsoFhmz57Nm2++yY4dOzjllFNYsmQJ69atY+fOnbRrd/RjAy5fvpxly5aRkJDA0qVLiY+PJzk5menTpzNjxgxefvllli1bxldffcUZZ5zB9OnTay2me+65h2+//Zbly5cza9YsZs2aRVhYGPfccw/33nsvK1as4PPPPycxMZHevZ2Bert27crKlSt57rnnePDBBxk7diwvv/wyb731FmPHjuWjjz4iKSmJ0aNHB7S+14QJE3jxxRcrjfP888+v8jvo2bMnq1ev5ttvv8Xj8bBjxw769+9PWlraUfw1jKlcoNeA7sBJOM8DNwBj3PkDgAeAibUeWSNUPvlUN/9ozZo1C4CLLrqIsLAwxo0bx8yZM3n99deZMWNGmV/KvXr1AiApKQmA7OzsCtsLpAxASUlJmdcbN26kd+/elZbfs2fPMSWg9PR0ADp27Eh8fDwA3bp1Ayhz7au82oipQ4cOfPPNN6xevZrFixfz6quv8vnnn3Pfffdx2223+WI7fPgwjz76aJl1f/rpJwAmTpzIyy+/zGuvvea7ifLyyy8nJiYmoPW9BgwYUG28lbnuuuuYOnUqs2bNIiEhAYDx48cf1baMqUqgCagHsENVd4rIUJzepO9zH+cEJ7TjR6A1kxdS1zun38pJ6BTJuE87V7JGzR08eJB333VGLH/mmWfKtMw6dOgQCxYs8J2KAoiIcHaRI93TVFUZ74E/KysLgDVr1pRZ/s4775Cdnc1pp53Gp59+SkFBAa1btwac0z7HwjtI4LZt28jNzSUuLs53eqpTp06A0zULlF6gr62Yli1bximnnELPnj3p2bMnEyZMoFmzZqgqOTk5vtjatm3L5s2bfQk/Ly+PQ4cOATB8+HDatWvHwoULfafhrrnmmjKf7Ujre5U/7VZeZd8BODWnP/zhD7zyyiskJycTERFRK6dGjfEX6DWgFpQOW90N+EZV/w78AFQ76p0JTP/7WxMRV/YgHhEn9L+/da29x+zZsykoKKBJkyaMGTPG9zjhhBMApzVcbfHWjF544QXuuOMOfvWrX5VZ7j2wb9iwgSlTpvhar9WGPn36cOaZZ5Kdnc2gQYO45pprePzxxxERXxwdOzqjuL/33nvcfvvtzJkzp1Zievjhh+nQoQMXXXQRt9xyi28bJ554IikpKZx++un079+fXbt20bdvX26++WbGjh1Lu3bteP99p0P2sLAwxo8fT1FREcuWLaNLly6+2kwg6weqsu8AoEWLFowdO5bdu3ezZs0ahg8fTsuW9q9ualegCeggkCYiA4A04Ed3fhyQFYS4GqUTxydx9lPtSegUCeLUfM5+qj0njk+qtffwnn676aabeOutt3yP//3vf4BzINq3b9+RNhGwq6++mquuuoqioiLefvttfv3rX5dZfvnll3PdddcRHh7Oxx9/zJ133lkr7wvOAXz+/PlMnjyZzMxM5s6dS69evZg/fz4DBw4E4LLLLuO8884jJyeHGTNm+BobHGtMV1xxBX379mXFihU8++yzbN26lXHjxrFgwQJEhLCwMObNm8fNN99MVlYWzz//PCtXrmTkyJH069fPt52JE0vPbF999dVlPlsg6weisu/A6/rrr/dNX3XVVTX+HoypTkDDMYjIXJzrPt7CV+IMAHcA+F5V+wcrwPququEY1q5dS/fu3UMQkTG1w+Px0KRJE1SVjIwM37Wghs7+N4OvtodjuANIAU4AFgBvAIOB/cAHRxukMaZ+euONN3j//ffJycnhpptuOm6Sj6lfAkpAqroROL3c7E+BjrUdkDEm9GbMmMEXX3zBsGHD+Nvf/hbqcMxxKuCueEQkHLgc6IfTIGEWkAqsUdUj36RijGlQGmJHq6bhCagRgog0BZbhJJ3bgFE4TbMXAf8vaNEZY4w5bgXaCu5BnFNwHsDbTvgjnPuBzg9CXMYYY45zgSagMUA20MU7Q1VLgK1A7dwhaYwxplGpyY2oP6vq1nLzPUCT2g3JGGNMYxBoAtoBdBMRX+N5ETkD6A5sD0Zgxhhjjm+BJqC3gGhgFc7NqL2BL9xlc2s9KtOoeIeJ9u+N2dQO7+iwq1atCnUoNWbDh4fGhpcO8kLqep4IW8MLqetrfTgYf4EmoD8BK4FInEYIUe663+F0SGoaEO9Q3G3btiUvzxkmYtWqVb6Dlam52j5Yev8W3p6vg8WGDzf+6mpMMq+AEpCqZuPc/zMR+Lf7mAz0U9XDQYmsHBGJF5GHRGSDiOSISJaIrBaRu9x7lBCRSBGZJiKbRKRQRLaLyHQRSSy3ra4i8oaI7BeRfBH5VkQa3Uhbu3fv5j//+U+ow2hUiooq9nYeSt7hw4uLi5k8eTLnnXceWVlZfPnllyGLyePx4PF4uO2225g+fXrIhlZvjL68K4Pi3Ipjkn15V0YVaxyj6oZMxan1zAFewu07LhQP4EVKhw7+Adji9/pOt8xM93UJsA4odF9/CoS5Zdri3EirwCFgk992rq1pXLU9JLeq6jO/X6ozblqoz/x+6VFv40i8Q0qLiLZu3VpzcnJ05cqVFYbLPtKQ1qqlQ27fdNNNOmrUKI2NjdWePXvqypUrj/j+c+bM0S5dumiTJk30N7/5jQ4aNEgB/de//uUr88wzz+gpp5yi8fHx2rVrV73//vu1qKhIVVWfe+45BfSUU07RX//61xofH6/du3fXb7/9Vu+++25t0qSJpqWl6QcffFBrn8Xj8eidd96pHTp00KioKG3durWOGDFC9+7d6xvm2v8xbdo0XbRokW+482nTpmnz5s110qRJunPnTh00aJC2aNFCIyIiNDk5WcePH68HDhxQVa2wLfyG/z7S9+LxePSee+7Rli1bavv27fXFF1/0rV/V36QxDh9uQ3JXbQarK3/I6hpthwCH5A704H8Q+C6QssF6AOnujveB+zoKpyduBZ7EuS7l3Tlvc8tc5DfvYnfeY+7rLKCdO+8Nd94eIKomcQUjAc24aaHvEQzeBHT55ZcroA899FCFBFRSUqL9+vVTQHv16qUTJkzQiIgIDQsL088//1xVSw/agI4dO1Z79OihgA4cOLDK996wYYNGREQooGPGjNEBAwZoWFhYmQT05JNPKqAdO3bUyZMna8+ePRXQe++9V1VLE5CI6FlnnaV9+vRRQJs2bardunXTESNGKKDt27evtc/y0Ucf+ZLJLbfcopdddpm2bdtWN2/erI8//ri2b99eAT333HN1ypQp+t577/kSkDeWG264QR955BFdv3699unTRydNmqS33HKLnnDCCb7kp6o6ZcoU33qTJ0/WKVOm6MaNG6v9XrzJICYmRidNmqRdu3atNgHdeOONCmiLFi10woQJ+sQTT+jmzZt9y0tKSnTAgAEK6KBBg/Taa6/VxMREjYmJ0XXr1mlWVpbGxcVpVFSUL4FeeOGFCuhrr71W7fqqpQlIRHTUqFE6YcIE3blzZ5kE9N577+mZZ56pgHbv3l2nTJmijz/+uC5btkwB7dGjh6o6Sdj7t9i0aVOln9kSUOXW/HdflQno+U7rarSt2k5AzwOHgbaBlA/Gg9LaTfka0DKgE3CX3/K27jphODfLKvCUO2+jfyJz513lt+5Zlbx3pb9KAQ00Ab358IoKj+8XbVNV1cKCYn3z4RX671994iSem53k88Qtzutnfruk0vU3fLNbVVWz9uUFtle4vAlozpw52qNHD23ZsqUuXbq0TAL66quvFNCEhATNzs5WVdWpU6cqoFdeeaWqlh60L7zwQlVV/eSTTxTQ+Ph43zamTJnie2zcuFH/8pe/KKDnnHOOqqoWFRVp69atyyQg78H/kksu0SlTpuj48eMV0NatW6tqaQJKSEjQ3NzcMgf6H374QbOysnyvMzMza+WzvPvuuwrosGHDdNGiRZqRkaEej0dLSkpUVcscLL28cYmIbty4sczf4Ntvv9W///3v+tvf/lbHjh2rgJ5wwgm+5d74/ZNBdd/LsGHDFND77rtPVVW///77ahPQtm3bfAnc+wgLC9Np06apqurXX3+tgCYmJvr+jr169VJA//CHP6iq6lVXXeX77AcOHNDIyEhNSkrSvLy8gNb3fndXX311mdjKf6feWtDEiRPLlPMm4hUrVug333yjgPbv37/Sz6tqCagyK/+5R2ewWl85dYM+GbumTPJ5Mm6Nrp91oEbbCzQBBdoXXCbOqbhVIjKH0lNY4Byx6qIhwg3ue16N0w0QQBHwPbCXsh2jZrpxeURkL9ABpzdv/Mpl+pX3P8GZQmkLvzrlKXG/Uu+Tx5nIyy6iWRDeLywsjGnTpnHFFVcwY8aMMstqMqR1+SG5c3JyAPjxxx/LDBk9duxYduzYAcBJJ50EOKOppqWlkZFR+ifwvrd3cDSvjIyMMkNlp6amEhsb63tf73a9o3x6Y6mNzzJixAh+9atfMXPmTM4++2zAGfRu/vz5tG175BFvW7duTdeuXX2vX3nllUrH19mzZ88Rt1Pd91L+uz3xxBOPuD2w4cMbO1Vl+V/38PWfMulyaRPOfakDP7+exZd3ZZC9tYiElEj639+6Vsck8xdoAvodzmExGbipkuV1kYCm4iSfr3B6ZkgCFuMkpjCguIr1AmnWdcQyqlrlcvfXY7XG/bZ3lcsio8IZ99vePHvHZ+RlFRIeIZQUq+85tknUEddPbB4TSAiVuuyyy/jrX//K7Nmzy8wPZEhrr6qG5J40aVKFFkufffYZgG9bxcXFbN68ucJ7//jjj8ybN4/Ro0f75m/evLnMsAD+ieZI82rjs5SUlDBjxgwef/xxNm/ezH333ceLL77I008/zT333FPl0NZQcVjs1157DXAGBXzsscd46623uOKKK7y1bcD5ceC9GB/o99K+fXvWrVvn+2wbNmyoEEt5Nnx446WqfPl/Gax8aC8nXZPEOc+0JyxCOHF8UtASTnmBNsMG5yBd1SOoRCQO+Iv7co6qZqjqepwEBDAc2Oa3Sit3vTCcXhzA6TYIv3KtypcvV67OXfvQQG598hxKip0DUUmxcuuT53DtQwOD9p4iwrRp08oc/CCwIa2PxhVXXEF4eDiffPIJY8eOZejQoWRmZpYpc9tttwHOKKCTJk3immuuoUePHkyePPmo3rM2PssXX3xBWloa48eP55///Ceff/45UFpT8g5t/eijjzJ16lS+++67KrflHfb73Xff5ZZbbmHKlCkVyni3d9tttzF16lRycnKq/V68taoHHniAyZMnM27cuGo/lw0f3jipR1l6+y5WPrSXk29pzrDnnORT94GE6JpOTR44NS/vOerZ7rwonKHBvdeETvcrc6RGCI9Tzxsh1FUruLlz56qqc+H2tNNOK3MNSFU1IyNDJ0+erB06dNCEhATt27evLliwwLfce93Ee72gspZ0lZk9e7Z27txZExIS9NZbb9WBAweWuQbk8Xj06aef1tNOO03j4+O1RYsWOnjwYJ05c6aqll4DOvXUU6t8X+9r7zWUY/0sGzZs0OHDh2vLli01MjJS27ZtqzfffLPm5+erqnO95ZRTTvE1sHj99dfLtILzt2PHDj377LM1JiZGTz31VH3ssccUtxGF16uvvqodOnRQEVFA9+zZU+33UlJSonfddZe2bNlS27Rpo0899VS114Bmz56tI0aM0LZt2/pa940bN07Xr1/vK5OZmak333yzdurUSaOjozUlJUXHjx+va9eu9ZVZs2aN7728jSICXb+y62eVzc/OztbzzjtPY2NjFdBbb73VV9bbSATQF198sdLP6tXYrwGVFHn040nbdAar9bPf7VKPx1Pr70GA14ACGpLbS0SSgFPdl9+p6sGAVz5GIrIYZxRWcJpOx+I0qQb4g6o+JCIv4wwX7gE24HSeGgksBYaqc02oPU6PDsk4SWgfkOZu50ZV/V9N4rIhuY0JvZoMH96Y/zdLCj18NGE7P7+exRl/bkWfe1oG5ebzQIfkDvgUnIg8AOwGPnEfu0Xkr0cfYo2NBf6Ok1ja4CSg5cB1qvqQW2YizvWorTjJZy9OjWeUqnoAVHUHMAB4E+cXUzuchDShpsnHGBN6b7zxBjfeeCM5OTlcffXVNnx4FYrzPbx/yTZ+fj2Lsx5uQ98/tQp5zycB1YBE5Gac3g/KU+AWVX2qtgNrKKwGZExoDR06lC+++ILBgwfz+uuv06zZkduMNsb/zcLsEt4ds5Udi3IY8u92nHxz86C+X6A1oEBbwd2Mk2xeA15x510FXAHcAjTaBGSMCS0bPvzICg6W8PbILWQsy2X4C+056epg3NRxdAJNQCcB6arqf/PCAhE5011mjDGmnsnbW8yC89LZt7qA82Z3pMslTUMdUhmBJqBiIE5EIlW1CEBEonCuw5QEKzhjjDFHJ2dXEfOGp5O1qZAL3koh9cLE6leqY4EmoJU4F+4/E5G57rxxOPfPfB6MwI4Hqhryi3zGmFKV3Sh8PMraUsi8Yenk7i5m1Lud6HB2/WyYEWgCehgYCPRxH+DcgKrAQ1Wt1JjFxMSwb98+WrRoYUnImBBTt4ugjIwMX3dMx6uDGwuYNyydwqwSxnycSpt+caEOqUoBJSBVnS8i1wB/pbRPta3AXar6drCCa8g6dOjA9u3bq+3fyxhTNyIiImjatCnJycmhDiVo9q3JZ97wdLREGbsojZa9YkMd0hEFWgNCVWcBs0SkpfvajqxHEBkZSVpaWvUFjTGmFmSuyGP+iHTCo4Wxi9Jo3v3o+4isKwElIBHpB5wILFbVLe68TsAQYKOqhm74RGOMaeR2fZ7D2xduIbpZOGMWptK0y5E7dq0vAq0BzQC64/Qa4HUA+A9OP2w2Zq4xxoTAto+zeXfMFhI6RDL641QSO0aFOqSABdoVz0nAT6rq6z9dVbOAn4BuwQjMGGPMkW1ekMU7o7bQtEsU45Z0blDJBwJPQGFAe/feH8B3H1B7oOIALMYYY4Jq42uHeP/irbQ4JYaxn6YR1zrgS/r1RqAJaC3QDHhVRAaJyCCcLnmau8uMMcbUkbXPHeCjq7bRun8cYz5OJaZ5w0s+EPg1oKdxOiMd4z68FLAepI0xpo58P2MfS2/fRccRCVwwN4XIuJqMK1q/BBS5qj4JPOG+9B8FdYaq/jcYgRljjClrxYN7WHr7LtLGJDJyfsNOPlCz+4BuF5GHgb7urG+8TbKNMcYEj6ry1T2ZrLh/Dydc1ZRhz3cgPLLh97BSoxOHbsKxpGOMMXVEVfn8N7v5bvo+elzfjCFPtiMsvOEnH6jmFJyIpInIYHcYa0QkXEQeEpENIvKNiEytkyiNMaYR8pQon964k++m7+OUKS0Y+tTxk3yg+hrQ34FLgGHADuB24Hc4jQ8E6C0ioqr/CmqUxhjTyJQUKQsnbWfjy4c4/a6WnPmX0A+hXduqu4LVE8gBFruvJ7rPW4ClOEloUlAiM8aYRqqkwMMHl29l48uH6Pe31vT7a+vjLvlA9TWgNsAWVVURaQacilP7uQZnHKAdQNfghmiMMY1HUa6H98ZtZduH2Qx6rC2n3N4i1CEFTXUJKJrSJtenu8+5wBduUtoB1K8xXo0xpoEqzCrh7VFb2P15Lmc/054e1zYLdUhBVV0C2gZ0E5FJONeCAD5XVe+wgm0BG5bBGGOOUf7+Yhacv4W9K/M49+WOnHDF8f/bvrprQG+6ZZ4BLsQ5/fYygIicgNM79o/BDNAYY453uRnFvDV0M3u/y+f8OSmNIvlA9QnofmAeTuIBeFFVX3Snr3OfFwYjMGOMaQyytxcxd/AmDv1cyKh3OpE2ukmoQ6ozRzwFp6rZwDgRiXNf5/otvgeYBhQGLzxjjDl+HdpUyLxhmynYX8JFH6TSbmB8qEOqU4H2BZdbLvmgqkWqWqCqWtV6tU1EWojIdBHZLCKFIrJfRJaISC93eaSITBORTe7y7W75xHLb6Soib7jr54vItyJyZV19DmOM2b82n7mDNlGY5WHMwrRGl3yghl3xhJKItAC+AroAJcBGoBjo5c5bCTwLTAA87vLOwBTgNBE5R1U9ItIWpwl5KyAL2Olu42URiVXVZ+v0gxljGp09q/JYMCIdwoRxi9NocXJMqEMKiYbUlepfcRLNDqC7qnZX1Z5AEvCuiPTGST4AU1S1G6Ut94YAY93pO3GSz2F3O52BOe6yv/sPumeMMbVt97Jc5p29mfCYMC5e2niTDzSQBCTOLcCXuy834dRWskXkR+BGIA+4wG8Vb0J5B8h3p893n73lvlTVne70m+5zMtCnkvfXqh7H/OGMMY3Gjk+zmX9uOtEtIhi3NI2kE6JDHVJINZRTcC1xRl8FGIRz79EeoDvOQHnhQEe/8pkA7im3vUAHIMVd1tG/jCvDbzoF+KI2gzfGmC3vHea9i7fSpHMUYz5OJb5tZKhDCrkGUQOibKLch3MqrivwpTvvtiOsG0gHSkcso6pS1SOAbRtjGrmf3zzEu2O20qx7NOMWp1nycTWU4Rj2UNrce4OqHlbVEmCFOy8Vp9cGr1ZuvGGAtyOlre7zNv8ylUxvxRhjasn6WQf54PJttOoby9hP0ohNbignnoKvuhrQ34FFwAnua+9wDF1w+oZ7RER+HbzwHKpaBHzqvjxRRBLc5NLLnbcBeN9vFW/jg5GA9wrf++We+4tIO3f6Yvd5L7C8FkM3xjRia/67n4+v2U67IfFc9EEnopPCQx1SvdKQhmO4GyjAqdH87D4GuMv+rKorgFfc14+KyFpKGyMsBd5ypx/ESTSJwFoR2URpwvqjqtqNtcaYY7bqn3tZfPNOOl2YyKh3OhGVYMmnvOoS0JGGYxgK7KaOhmNQ1W/c91wIxOP0wr0YOEdVvYlmInAfzmm0LjiJ5nFglLcDVVXdgZO43nQ/SztgFTBBVf9XF5/FGHP8UlW+uS+Tz3+7my6XNeGCNzsSEdNQLrfXrQY1HIOqLgOGH2F5EU73QNOq2c4GSms9xhhTK1SVL/+Qwcp/7KXbxCTOfro9YRHWVqkqNhyDMcbUAvUoS27bxZr/7OfkXzVn8ONtkTBLPkdiwzEYY8wx8hQrCyfvYM1/9tPrjmQGz7DkEwgbjsEYY45BSaGHD6/cxvoXD3LGfa3o/2BrnM5bTHVsOAZjjDlKxXke3r90K1vezWbAI2047TfJoQ6pQQnojij/xCMibYBzgEPAUlUtCFJsxhhTbxVml/Du6K3s+DSHof9txy9ubF79SqaM6npC+I2IfCIiI9zXPYC1wExgPvC9iHQLfpjGGFN/FBwsYcGIdHYuyWH4ix0s+Ryl6q4BjQUGA9+7r6fhNLsW99ER+EuwgjPGmPomb08xb52zmczl+Zw3uyMnTUgKdUgNVnUJqCuwS1V3u13fjMBpkPCQO+3B6Z3aGGOOezk7i5g7dDMH1hZw4fwUulxcZ7dBHpequwbUDPjBnT4Jp/ajwD9VNVNEfgB6BDE+Y4ypF7K2FDJvWDp5GcVc9H4q7Yc0viG0a1t1CSgL6CQiETjd4ABsUlXvWDrhOI0RjDHmuHVwQwHzhqdTdLiE0R+n0ubMuFCHdFyoLgGtwUk8P+D0eqDAuwAiEo3TS/a6IMZnjDEhtW91PvPOTQePMvbTNJJPjQ11SMeNQG5ELcZJNAk4/cBNd5eNBKKAz4MVnDHGhFLm8jzmDt1MWDiMW9LZkk8tq+5G1E9EZCDOeDlhwPOqutldHIUzXtDrwQ3RGGPq3s7Pcnj7wi3EJocz+uM0mnaOCnVIx50jJiARaekOg/BN+WWq+irwarACM8aYUNn2UTbvjtlCQkokYz5OI6GDDaEdDNWdgtsuInNFZLSI2GhKxpjj3ub5Wbw9agtNT4hm3JLOlnyCqLoEFAmMBuYCO0XkERHpGfywjDGm7m189SDvXbyV5NNiGLsolbhWAfVWZo5SdQnoUSATp9eDlsBUYJWILBeRX7mjpBpjTIP347MH+PCq7bQdEMeYj1OJaW7JJ9iOmIBU9ddAB2AUMBsowElGvXGGut4pIq8FO0hjjAmm7x7bx6LrdpAyIoFR76USlWhXHOpCtQOVq2qJqr6rqr8E2gA3AEvdxdHApUGMzxhjgmrF3/bw2ZRddB7XhAvnpRAZV+1h0dSSGn3TqpqFMwLqWiAnKBEZY0wdUFWW3ZXBsj9mcOL4ppw3uyPh0ZZ86lJAJzlFJBW4Brga6Oyd7T6vr/2wjDEmeFSVz6bu5vvH9tHjhmYM+U87wsJtFNO6Vt19QNfjJJ4B3lnucxbwGvCcqi4LXnjGGFO7PCXKpzftZO0zBzh1agsG/LONDaEdItXVgJ7C6f9N3OeFwPPAm6qaF9zQjDGmdpUUKQsnbmfjK4foc09LzvhzK0s+IRTIKbh0nKTzgqpuDWo0xhgTJMX5Hj785TY2zztM/wdb0/sPLUMdUqNXXQI6W1UX10kkxhgTJEW5Ht4bu4VtH+UweEZbet7aItQhGapvBZcvIv8UkVHlF4jIWHfZmUGKrUoiMltE1H284Tc/UkSmicgmESkUke0iMl1EEsut31VE3hCR/SKSLyLfisiVdf05jDHBV5hVwoLz09m+MIdznmtvyaceqa4GNAW4AvhfJcs2AW8C7YBf1nJcVRKRycBlVSx+FpiAM1T4RpwWe1OA00TkHFX1iEhbnCEkWuE0ptgJ9AJeFpFYVX022J/BGFM38vcXs+C8Lexdlce5r3TkhMttCO36pLoaUD9gr6quLb9AVb8HMoD+wQisMiLSBXgM+BLYXm5Zb5zkAzBFVbsBl7ivhwBj3ek7cZLPYaC7qnYG5rjL/i4i1ue6MceB3Ixi3hq6mX2r87lgbooln3qougTUDth9hOWZQOvaC6dq7rDgL+HUbsYDJeWKXOA37U0o7wD57vT55cp9qao73ek33edkoE8l761VPY7+ExljguXwtkLmDt7EoZ8LGflOJ1JHNQl1SKYS1SWgHKCriFQYAN2d15W66xFhGnAm8Cu/QfH8dfSbzgRQVQ+w152XUq5cpl/5DL/pFIwxDdahnwuYO2gzubuLGf1hKh2HJYQ6JFOF6hLQ90AM8B8RifbOdE9T/RuIBb4LXni+9+uDc+pslqq+VNPVj7WMqkpVjxrGYowJov0/5vPmoM0UZXsYuyiNtgPiQx2SOYLqEtBMnIPzBGCTiMwTkbdwGiBcjXNz6sygRug4GQgHLhWRbBHJprSmMtZ9vcuvfCsAEQkDvE1evPcwbfMvU8m03etkTAO0Z2Uec4dsBoWxi9No2Ts21CGZalSXgJ4DPsRJQm1whmW4COfakAAfqupzQY2wrBgg3n14ax/h7uu3/cp5Gx+MdNcBeL/cc38RaedOX+w+7wWW13LMxpgg2/1lLm+dvZmIuDDGLU2jxS9iql/JhFx14wEpzoiofwP24Bz0Bef6yQPAmGAH6MbxfCWnvra4i+e481YAr7jzHhWRtZQ2RlgKvOVOP4iTaBKBtSKyidKE9UdVLQz25zHG1J7ti7KZd246sS0juHhpGkldo6tfydQLgYwHVKiqd6lqG5xTVa1VtY2q3l0PD9YTgftwTqN1wUk0jwOj3AYJqOoOnM5V38Q5hdgOWAVMUNXK7ncyxtRT6e8e5u0Lt9AkNZJxS9JITLG7KBoScSo55mj16dNHly+3s3bG1LWf5xziwyu306JnNBd9kEpssg2hXV+IyApVrXBLS3k2+pIxpsFZ9+IBPrh8G636xjLmkzRLPg2UJSBjTIOy5sn9LJy4g/ZnxzP6w1Sim4aHOiRzlCwBGWMajJUP72XxLTtJHZXIyLc7ERlvh7CGrMq/noiMFpGB7nSKiNRJlzvGGFOeqvL1vRl88fvddL28Cee/mUJEjCWfhu5If8G3gL+70+mU9pdmjDF1RlX54ve7+ebPe+g2KYlzX+5IeKR1QnI8ONKVuxKgg4h0dV/HiEhHKum2xkZKNcYEg3qUxbfu4ocn99PztuYMerQtEmbJ53hxpAS0DegErMe5X+Y0nJpQeVrNdowxpsY8xcon1+5g/cyD9P5DMv3+1hoRSz7HkyOdgnuc0p4P8Juu7GGMMbWmpNDDh7/cxvqZBznzr60s+Rynqqy5qOq/ROQTnI5AZwI/A3+tq8CMMY1TcZ6H9y7Zytb3shn4rzacOjU51CGZIDniqTNV/Q74TkTOBX5S1RfqJixjTGNUeLiEd0dvZcfiHIY+1Y5f3NA81CGZIAro2o2qTgIQkZGUjhi6XFXfCVJcxphGJv9ACW9fmE7mN3kMn9mBk8YnhTokE2QBJSARiccZxuCscvM/B85X1dwgxGaMaSTy9hQzf0Q6+38s4PzXU+g8zobQbgwCvZPrXpwepMs3PhiAM1S2McYclewdRcwdspmD6wsYOd+ST2MSaAK6BOe+oFuApu7jVzhNsC8LTmjGmONdVnohcwdvIntbERe9n0rKeYmhDsnUoUATUHtgvar+V1UPu48ngXXuMmOMqZED6wuYO2gTBQc8jFmYSrvB8aEOydSxQBNQFpAiIh28M9xeETq5y4wxJmB7v89n7uBNlBQqYz9No/UZcaEOyYRAoAloKZAA/Cgi74vI+8APQBywOFjBGWOOPxnf5PLW0M2ERQrjlnQm+ZSYUIdkQiTQLnTuAYbjJKFz3XkCHAb+FIS4jDHHoZ1Lc3h75BZik8MZszCNJmk2hHZjFlANSFV/AM4AXsS57rPOnT5TVX8MXnjGmOPF1g8Ps+C8dBLaRzJuaWdLPibwTkRVdR0wKXihGGOOV5vmZfHB5dto1j2a0R+mEtfK+i82NiKqMSbINrxykPcv2UrLXjGMXZRmycf4WAIyxgTNj8/s56Px22k7MI7RH6US0yw81CGZesQSkDEmKL57dC+Lrt9JynkJjHo3lahESz6mLEtAxphat/yBTD6bupvOFzfhwrdSiIyzQ42pqEHsFSLyWxH5RER2iEiBiGwXkddFpKdfmUgRmSYim0Sk0C0zXUQSy22rq4i8ISL7RSRfRL4VkSvr/lMZc/xRVb78426+uiuTEyc05bzXOhIe3SAOMyYEAr4aKCInAkOB1pQbBVVV76vdsCq4HafXhY1ANnAicClwgYicrKrpwLPABMDjlusMTAFOE5FzVNUjIm2Bz4FWOD047AR6AS+LSKyqPhvkz2HMcUs9ytKpu1j9+H5+cVMzhvy7HRJmo5iaqgU6HMN1wJNUXWMKdgJ6GpjlJhpE5DfAI0A8ME5EFuMkH4ApqjpDRC4C5gNDgLHAm8CdOMnnMNBdVXeKyBs4na3+XURmqWphkD+LMccdT4ny6Y07WPvsQU79TQsGPNzGhtA21Qq0bnwPEE7F4Ri8j6BS1b96k4/rI7/pAuACv9dz3Od3gHx3+nz32VvuS1Xd6U6/6T4nUzrYnjEmQCVFykfjt7P22YP0+VNLSz4mYIEmoObAbqCrqoaVfwQxvqr8xn3eB7wOdPRblgmgqh5grzsvxX3u6F/GleE3nUIlRESrehzLhzCmoSvO9/D+JVv56bVD9H+oNWf+ubUlHxOwQJPHq27ZPUGMpVoiEiUiL+L0yJAFjFXVI8UUyH+C/bcYcxSKcjy8c9EW0hccZvATben9+5ahDsk0MIE2QpiCMxz3RhH5jLJDMKiqXlfrkZUjIsnAXGAgsAsYqaor3cXb/Iq2AnaJSBjQwp231a9cV7eMf3nKlStDVatMUn369LFakGl0Cg6V8M7ILez+Mpdhz7en28RmoQ7JNECB1oB+D/QAWgLjgInuYxJ10D+ciHQHvsJJPquAM/ySD8D7ftOXuM8jgZhyy73P/UWknTt9sfu8F1hei2Ebc1zK31fMvGGbyfgqlxGvdrTkY45aTWpAAEU4p+GKgxNOlebiNKsGJ+Y3/M4zP62qT4vIK8CVwKMicivQxV2+FHjLnX4Q+CVOg4O1IrIPSHOX/dFawBlzZDm7i5h/bjqHNhZywVudSB1pQ2iboxdoAioCtgC/UNXcIMZTFf8Rq04ut8xbq5mIc//PNTjJZy/wBnC32yABVd0hIgOAvwHDgHY4NaqHVfWloEVvzHHg8NZC5g1PJ2dnMaPe7USHcxJCHZJp4AJNQA/hNMVuAdR5AlLV1ADKFAHT3MeRym2g9DSdMSYAB38qYN6wdAoPlTD6w1TanmVDaJtjF2gCuginFrJRRNZQsRHCsFqPzBhTL+z/MZ95w9PxFCpjP0mjZe/YUIdkjhOBJqAhgOI0We7tzvO+tlZgxhyn9nybx/wR6YRFCeOWpNG8R0z1KxkToEAT0BIs0RjTqOz6Ipe3L0wnqmk4YxamktQ1OtQhmeNMQAlIVYcGOQ5jTD2y/ZNs3hm9lfh2EYz5OJXElKhQh2SOQ9ZPujGmjPR3DvP2hVtokhbJuCVplnxM0ATaG3bJERarqtog78YcB356/RAfXbWNFqfGMPqDVGJa2L92Y/TsHZ+Rl1VIbJMorn1oYNDeJ9C9y/pLM+Y4t+6FA3xy7Q7anBXHyLc7Ed3UhtBurPKyCss8B0ugCejP5V43xRnaoCvwaK1GZIypc6v/vY8lt+6iw/B4LnyrE5Hxdna+MfF4lMwtWSx4dBWF+SVImKAeJTxCeOLmT4JWEwq0EUL5BISI/BFYDdjt0MY0YN/+Yw9f3pFB6uhEznutIxExlnyORwV5xRzKzOVgZi6HMvM4mJlLcvtEeo1IAVXm/uNbPB6nsbO6zyXFznOwakLHcoK3AMgBLgNurp1wjDF1RVX5+t5Mlt+3h65XNGX4zA6ER9rZ9oasML+YQ3vyfAkmMiqcU4c5w6C9+pevyN5f4Cub0Cya+CZO0/qw8DBG3X4qHz79A/k5RYRHCCXF6nuObRKchiiBNkL4pNyscCAV6EDpoG/GmAZCVfn8d7v57p/76H5tEkOfak9YuCWfhqC4sMSXZPJzi+gxwOnY/93/fM/m78oejtt2bepLQGeN60p4RBhNW8XStGUsEVFlr/F17N6c6x4ZBMATNzuH/JJi5dYnzwnaZwm0BjSU0p4Pynu51qIxxgSdepTFv9rJD/89QM/bmzNoelskzJJPfVJS7CFrbx6H9uSR2jMZgOXvpvPD0h1kHyzwdQsQER1O97PaIiKknpJMq9QmJLWK8yWZqJjSQ/wJfVsH/P6xTaJ8reCC6Wh7QlCcYa0XAs/VdlDGmODwFCsLJ29nw6xD9L4zmX732xDaoVJS4uHw3nwSW8QQHhHGplV7WLNkB4cyczm8Lx91j7jXPTKImPhI4ppE0e7EJF+CcZ7jfH8/b02oNgSz6bU/6wnBmEaipMDDh1dtZ9ObWZx5fyv6/LFV9SuZY+LxKKgSFh7G3u3ZrP1ip+/6zOG9+Xg8yhV39yW5QyJFBSXkZxfROrUJJ57RhqRWsTRtHUdktHOqrMfAdvQYWHtJpj6wu8yMaQSK8zy8d/FWtr6fzcDpbTh1SnKoQzru5B0u5OeVe9yWZnkcyszl0N48LripJ6k9k8k5WMCPn+2kaas4kjsk0KV3K5JaxRLf1GkIcNKZbTjpzDYh/hR164gJSET64AzF/bWqrhORWOAFnOEZDuNc//m9OxaPMaYeKjxcwjsXbWHnklzOfrodPa5rHuqQGqSSYg8Zmw/5kov3+dRhKXQ/qy25WYUsfnm970J/Uus4Unsmk9jc6UG8Y4/m3PjoEDvl6ae6GtDdOMmmv/v6/4BL3elo4HacsYH+FJTojDHHJP9ACW9fkE7m8jzOfakDJ16ZFOqQ6i1VJT+nyDlFllF6v0z7k5px8uD2FBeWMPeRlQCEhQtNkmNJahVLTLxzGE1qE8c1D5xFQlJ0pY06wqyhRwXVJaCTgSxV/dp9fQVOA4SVwDrgKuByLAEZU+/kZhYzf0Q6B9YWcP6cFDqPaRLqkOoFX5LJzOVQZi5xTaM5eXB7AGbe9SVFBU7XlxImJLaIIbmjc699dFwko6ecRpPkWBKbRxMWXvaG3fDwMF9txwSmugTUEtgMICKtgRNxEtANqrpSRAYCnYIbojGmprJ3FDF/eDqHtxQyckEKKSMSQx1SnSrML/YlGU+xh5P6tQVgzkMr2L3pUGlBgc6ntuTkwe0REYZceSLR8ZEktYrztU7z17G7nb6sTdUloHDAO/5uX/c5S1VXutN7gRbBCMwYc3SyNhcyb9hm8vaWcNEHqbQbFB/qkIKiqLCEQ5l55BwsoNPJzmHoszc2suHrjDJdxyQ0i/YloBPPaE3n01r6mjE3aRlDRGTpDZnecqZuVJeAtgDdRORe4Fyc2s8iv+UpQEZwQjPG1NSB9QXMG7aZ4lxlzMJUWveNC3VIx6S4qISsPfk0axOHhAnrlu1i3Re7OOgmHnCurdz0+BDCwsNIbBZD6sktytwn07RVrG97PYd2CNVHMZWoLgHNBB4A7vGb9wKAiJwKJAOfBSc0Y0wgNrx0kC/vyiB7axEiEBEvXPxZF5JPaRjXI0qKPYg4/ZHt3nSI9ct2+xoAHD6QDwoT/3YWCc1iKMovoaTYQ4duzZz7ZFrFkdQqDtyWZd5uZ0zDUF0CehhoDfwSZ/TUf6vqPHfZpTi1n7eDF54x5kg2vHSQRTfuoDjX7cVYwVME+1fn18sEdHh/Ppu/21OmKfPhfflc/LvetOnclEN78ti4PIOmLWNp06Up3Vq1oWmrOF+XMj2HdrBazHFEVLX6UqZKffr00eXLl4c6DBMinhKlpMD78FBSoHgK/ec58wObp5QU+m2nzLzS+f7vcXBjAVpcMa6ETpFMTD+pzr+PosISdv98qMx9Mgcz8+g/tgude7Vkx4YDvPXPlURGh/udJoul+1ltadoyzhkGQLB7ZRo4EVmhqn2qK2c9IZgGQVUrObh7yhygPVXMr+6g7yn0VDKv7AG/7PuUzldP7X1GCYfwaCE8Osx9dh5hUVJmfmR8mG/egbUFlW4re2tw7g1XVXIOFlYYV6ZLr5ac1K8tuYcKmP/oKgAiIsNo2iqOFu3iiYpzDjWt05ow6e8DiGsSVWmSsU5RG5dGm4BE5JfAHUB3IA/4BPg/Vf0pmO/rf74+ISWS/ve35sTxScF8yxpRVTzFTr9hFX+B1/xXfsXkUPZXvm/ZEX7llxQonqJarKmLe6CP8jvIew/6fvMiE8KIaRHmlwBKE0HFeUeYH1WaPMIqmedNMkczHMILqevJ3lIx2SSkRB7116Oq5B0u4mBmLgcznCTTrE0c3fq3paTYwwt//NzXNXF4RBhNWsZSVOhk4sTmMYz5dS9fFzPlE0pEZDgRNtS3cTXKBCQi1wFPuy834zQlvwQYJCKnquruYLxv+fP12VuKWHTDDopyPaSNblLFwddD+V/gZX6FH8Ov/JLCsr/mvfOoxWN9WGT5X/F+v+ajxHdQjmwSVvmBuYoDduk2j1xb8E8qYd4kEXH8nOLpf3/rMvsUQESc0P/+6rvez892k0xmLuHhYb7u+l/60zIO7cnzlQsLE7oNaEu3/m2JiAznnKu7k5AUTdNWsSQ0jylzh39YeBgdTmpWi5/QHM8a3TUgEYkCduC04JujqpeKSDucnh0SgcdV9f8Fur2aXAPy/Vq9eg/EKeQKzGx5FJ+iIgmj5gfmKsqGR5UerMsfxP23EVbV/KjSdeyUSvBteOkgH328CqI9UBDGucNP89WqC3KLOJiZR0FOESm/cO6VWfjCj2z+bi8FuaUXj5I7JnDFXWcAsOrjrUiYkNQ6jqRWsSQ2j6lw178xR2LXgKrWFyf5AMwBUNWdIrIM516n84P1xr7z8nFa+tzCmdf7zpaERwlNm8UTFiUUlBTiEQ/hURAW5dQWIqLCaN4unrBoITcnnxJVwiJxDvThQnhEGM3bOjcdHszIpaiwpMz7R0SG0ayNs/zA7hyKi8pewIiMDneatAL7d+ZQUlJ2eVRMBE1bOvdU7NuRjcfjLC9xH9GxESS0cJbv3Z5N+R83MfGRJDaPQVXZuz27wvcTmxBFQrNoPB5l346Ky+OaRBHfNJqSYg/7d+VUWB7fNJq4JlEUF5VwYHduheWJzWKISYikqLCEgxmVLG8eQ0x8pG9Y4/KaJMcSHRtBQV4xWXsrLvcOAJafU8Th/fkVlie1jiMyKpy87EKyD1S8dtO8TTzhkWHkZhWSc6iS5e3iCQ8PI+dQAbl+N1o2GxwOS92/VbSH/HaHmfPQzxzMzCU/29m/ouMjuP6RwU6creLo2qc1SX6NAJokl94rc9rwlArvbUwwNMYE5H+jQKbftPeG2gr/fSJSZTXx9NNPD/ydJ+51fqUWU/rNX3oAgG83HiAqJpwbpg8B4IP/reGnFZllVo9PimbSgwMAWDJjLVvW7CuzvFmbOK66tx8An8xcy66fDpVZ3qpTIpfd6XRo8eEzP7B3W9mDfPuTkhj7694AvPOf78kqdxBOPSWZkb86BYB501eSd7jstYcTz2jNudf+AoA5Dy2nuLBsAvvF4PYMveokUJh9/zcVvp7Tzk1hwCVdKSooqXT5GRel0XdkGnmHCytdPuDSrpw2PIWsvfmVLj97Qjd6DGzH/p05vPFgxVrriOt/wQl9WpOZnsW86asqLB956ymk9kxmx/oDvPfk6grLx/22F+1OaMaWNfv4+LkfKyy//I99aZmSyM8rMln8yoYKy8ff14+kVnGsW7aLL9/8ucLyyQ8NJK5JFGsW72D5u+kVlgOERwhLX9tIWLjQrX/bMi3NVBURoc8FqZWua0xda4wJqCrBP1cU7R6QK/nWL7i5Z5lz6aedm1JhCN3wyNLTIH0uTK0wOJV34CqAfmO6kJ9TNkFEx5a+8YBLT6Awr2z73ZiE0gvXQ688qUINKs5veN5hE3tQUlw2wSQ0i/ZNj7j+ZKdJrZ/EFu59KeJ83vK8tauIqLBKlzdr49TOYuIjK13evF28L47Klid3SPC9T2XLW3Vy+ktr0T6h0uUtU5zlrdOaVB6fW/tsd0JSpcubJDufP+UXLSpd7v1+O5/a0lcT9RcV6/x9T+jb2hdL+URYUux8554S5ewJ3Spsw5j6pDFeAxpAae8NV6nqK+78D3FOwW1U1RMD3V5NrgE9e8dnTh9VJTi97LnPsU2i6mwIXHN88e5T4RFCSbH6nm2fMqEU6DWgxpiAooCdOC3f6rQRgtcTN3/im771yXNqtK4xlbF9ytQngSagRte0RVULgT+6Ly8RkU3AWpzksxd4MNgxxLqnWmL9TmkZcyxsnzINUaOrAXmJyHjgdzg3ouZTeiNqxavDR2Bd8RhjTFnWDLsaqvoS8FKo4zDGmMaq0Z2CM8YYUz802lNwtUVE9uAM3FcT3puHVtRyOKbxsn3K1KZj3Z86qWq13bxYAgoB742tqmr91JhaYfuUqU11tT/ZKThjjDEhYQnIGGNMSFgCMsYYExKWgIwxxoSEJSBjjDEhYa3gjDHGhITVgIwxxoSEJSBjjDEhYQnIGGNMSFgCMsYYExKWgIwxxoSEJaB6TESsXy9jzHHLElA9JCIJIpIAtAt1LMYYUx0ROapcYvcB1TMikgb8A0hzZ/1BVT8OYUimAROR9sAwoCdO1/qbVPVrd5moHQBMDYhIR2A08AvgB2Cdqi482u012hFR6yMR6Qp8DKS4s4qBE915xtSIiJwALMDZhwDygH0iMk1Vn1NVtSRkAuXuT+8Bnd1ZRUCkiPxaVR91y9Rof7JTcPWE+8tiAU7y+TswC+cHwuki0ldEBvqVtWtD5ojcmo83+bwCvAbEAh2AZ0TkBgBLPiYQItIGmI+TfGYDbwDb3cX/EpE7wdmfanJ8sgRUD7h/sOuAk4A5qnoncNBdPBJ4H1giIreBHTRMQH6Jk3zmqOp4Vb0SWAMUuMsfFZERIYvONDSn4ySfj1T1l6p6OfAXYIm7/H4RmQg1Oz5ZAqoH3D9Yc/dlfxGZD9wG7MY5b3/AXfaYiJwfghBNw3OC+3xIRFqIyHnuvG+BDUA0MAKO/gKyaVQ6ApFAGxHp4s57Afgv8KX7+hYRaV7ZylWxHS/ExAVkAIdxWr6Nwjlf319VRwJ/Bna6q6RVuiFjXO7+FOm+vBB4B3gTJ+k8AHwECHCOiEQAVqM2lfL7cbLbfW4HXCwibdwfzq/jnOoFOBVoWpPtWwIKvTD3D/lP4CGcZDMHpwFCG7fMLCALKAR2hSJI0zCISIS7P92DU9NpA5wBlAC/VdV3gC/c4rtUtdhO6Zry/BJPtPv8MbAaaAFMAa4QkRRVLQZm4PxA3gvk1+R9rBVcCLitSU5X1VdVtUREolQ1D7jfXf4kkAjcKiKJwHlAN2AVsCxEYZt6qtz+VCwikaq60224cj3OwWGbqi5yVxnjPq8TkXDAY0nIeIlICnCDiJwEZIvIi6r6qYjcBMwEugB3ACeJyJvABTg1o6VATo3ey/a7uuX+UT/HueYzUVVnuvN9BwIR+RvwB5waj+L8CtkGnKuqG0ITuamPjrA/RalqYbmyccDDwM04+9MQVU2v24hNfebeCrIAp0EUgAfYAoxS1bXutcTHcK4nluCcyg3DuYQwpKbHJzsFV4fcXxbv4xwsFHhSRK4BUNUSSv8eDwBf4dRQDwKLgOGWfIy/avanQv/GBe4Nzo/iJJ8twHmWfIw/d396Dyf5LMW50bQEp+n+LwBU9QOcxitzgO+B9ThNsgcfzfHJTsHVEffX59+ATsAnOE0aU4H/iAiq+iKgIhKmqodFZBgwAOfi3w5V3R+i0E09FOD+5G8rMBen5vOiJR/jzz3V/xDO6bWHVfUOtzuwt4BzgK5uuTBV3SIivwQS3NXzVbWgks1Wy2pAdURVc3F+TaxQ1eE41dh0nJsD/yMik1TVo6oeERmiqrmq+pGqrrbkY8oLdH8CEJFBbg37PeABSz6mEu1xksx3qnoHgKpm49x8Cm7jAvf41FlVS1T1kPs4quQDVgOqEyIS7v7BrhGRVu7sGUAUcBNO0+onRKQY6A1MFZFrVfX50ERs6rOj3J+uU9XncFpXGlPeduBFIBPAbchSROn9iXvc+ffjNFC4RFWXHuubWgIKIhGJdn8dxOHc44OqZvpdIH7IPU9/Pc4plP/i/IItAL4OUdimnjrG/emrEIVt6inv/iQiTVX1kIj8F/f+MTf5ADRzn3e53e3cCWTjNDo4ZnYKLkjci75Pi8hiYLmI3OXtz829QOz9Qz8IPAnswzlYHAB6qeqPIQrd1EO2P5naVG5/+lpE7sZpyp/tLo9yi3prQH/EuU3kANCvthpEWTPsIHCbMn6K0za+AKcZdTGwEnhUVV8uV/5R4HacP+5AVV1bpwGbes32J1ObqtmfpqvqK265KJwbUL0dIR8EBqnqD7UVi9WAapmIJOGc+mgHPIFzE+ls3J6tgbtF5GK/8lfiHCz2YwcLU47tT6Y2BbA/3SMi48CpWVPaD6X3x0ytJR+wBBQMSTg3ae0CHlLVJar6S+BxnO+7K3CViLQDcH9tPAacbQcLU4kkbH8ytSeJ6ven8SLSUUSigW9wrkcPCsZpXEtAta81zq+LBNybtwBUdQrwP5xfGiNx2tt7l01V1dV1HKdpGGx/MrUp0P2ps9vg5V/A+cG6hmgJqJb4DcK0CqdrlETgeRHxjkaJqt6E0xFkNNCn3HrG+Nj+ZGrTUexPp7vzclT1YLDismbYx0ickUxvAfqIyM84dw6/jDOyaSecgeTO9ftF6sG5gTAdbHA5U5btT6Y2HcP+tLku4rMEdAzcXojnU9px33CcKu4/ce46H+e+Xigi/8P5gw8E1mH3ZZhybH8ytakh7E/WDPsouR33fYxz0W4ZcAinRQnAWGA5MNWd7uq36nZghKquq6NQTQNg+5OpTQ1lf7IEdBREpAnwb+Aq4BFV/b2IxOM0a7wG+H+qOsMt19WdFwvsAF5Q1S0hCt3UQ7Y/mdrUkPYnOwV3dGKAs4FvVPX34FysE5Ed7vIod16WiOxX1amhCdM0ELY/mdrUYPYnawV3FFQ1E+f86WwAEYl1F3mHr81w598PvCoio93X1kLJVGD7k6lNDWl/shrQUVLVr0XkO3c6z52dgNO1xW4R+T1Ox325gLecne80lbL9ydSmhrI/WQI6Bt5xMMQZpMmD03FfJHA3MASnQ8ihdo7eBML2J1ObGsL+ZKfgaoeKSDjOOCxhOH/cQzh/3FrtO8k0CrY/mdpUb/cnS0C1QB0luGO04HQEOSDUf1zTMNn+ZGpTfd6fLAHVrj8DuwlSx32m0bH9ydSmerc/2X1AtUxEYlQ1P9RxmOOD7U+mNtW3/ckSkDHGmJCwU3DGGGNCwhKQMcaYkLAEZIwxJiQsARljjAkJS0DGGGNCwhKQMSEmIuEi8rWIqIhkuaNYepc1EZHt7rJ0EUkMZazG1CZLQMaEmHuX+kScjiITgf/6LX4YaA8ocK2qHq64hdohIlHB2rYxlbEEZEw9oKprgT+5Ly8QkatFZChwvTvvP8BnInKPiKwXkQIR2SciL4tIB+92ROR0EVkoIrvcMjki8o2ITPB/P7dGpSLyDxF5XkQOAa8F/5MaU8puRDWmnnA7jFwK9Mfpr+sg0BnYBJwCvAqMAjzAD0AHoBmwFThNVQ+IyKU4iWSbu41UtwzAKFV9x30v7z9+IVDsvscPqvrLoH5IY/xYAjKmHhGRE4FVOEMkg3Pqbag7vdh9Pk9VPxSRJGAjkAzcrar3i0hbwKOq3kHHYoDVOEMvz1LVq9353n/8vUAvVd0uIuHu6UBj6oSdgjOmHlHVDZSeigP4t6ouAc70m/eBm0AO4CQfgH7uswd4RER2ikgxkIeTfADaVfKWc1R1u/velnxMnbIB6Yypf5ZXMe31NU7NyN9W93kWMNxd/iOQDfTAadwQXsm2Mo4pUmOOgSUgYxqGb/ym/6mqrwGIiACDcK4XQWlN6H+qepOINAfW4CSgytg5eBMydgrOmAZAVT8F3nNfvioiG0RkNc7IlouB3u6y793n60XkB+BnIKYuYzUmUJaAjGk4xgHTgHVAJ5xWcJuAR4BP3TKTgEVAPhAHTKU0KRlTr1grOGOMMSFhNSBjjDEhYQnIGGNMSFgCMsYYExKWgIwxxoSEJSBjjDEhYQnIGGNMSFgCMsYYExKWgIwxxoSEJSBjjDEh8f8Bb8hHUHS6BEsAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "years = '2018,2019,2020'\n",
    "plot_type = 'line-plot'\n",
    "save_path = os.path.join(out_path, 'figures/cvss_scores_by_year.png')\n",
    "years_split = years.split(',')\n",
    "line_plot_cvss_scores_by_year(out_path, years_split, save_path=save_path)"
   ]
  }
 ],
 "metadata": {
  "@webio": {
   "lastCommId": null,
   "lastKernelId": null
  },
  "kernelspec": {
   "display_name": "venv_BRON",
   "language": "python",
   "name": "venv_bron"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}